// pages/common/customModal/customModal.js
Component({
  options: {
    multipleSlots: true // 在组件定义时的选项中启用多slot支持
  },

  properties: {
    // 这里定义了innerText属性，属性值可以在组件使用时指定
    contentText: {
      type: String,
      value: '你好，为了提供更好的用户体验请允许授权。'
    },
    buttonTitle: {
      type: String,
      value: '按钮'
    },
    scope: {
      type: String,
      value: 'scope.userInfo'
    },
    isSure: {
      type: Boolean,
      value: false
    }
  },

  /**
   * 页面的初始数据
   */
  data: {
    showModal: false,
    showuserInfoButton: true,
  },

  /**
   *  自定义 方法
   */
  methods: {
    /**
     * 弹窗
     */
    showDialogBtn: function() {
      var that = this;
      if (that.data.scope == 'scope.userInfo') {
        // 获取 token
        try {
          var value = wx.getStorageSync('userLoginToken')
          if (value) {
            wx.getStorage({
              key: 'wxUserLoginInfo',
              success: function(res) {
                that.triggerEvent("ButtonClick", res.data);
              },
            })
          } else {
            that.setData({
              showuserInfoButton: false,
              showModal: true
            })
          }
        } catch (e) {
          that.setData({
            showuserInfoButton: false,
            showModal: true
          })
        }
        return;
      }
      // 可以通过 wx.getSetting 先查询一下用户是否授权了 "scope.userInfo" 这个 scope
      wx.getSetting({
        success(res) {
          console.log(res)
          console.log(that.data.scope)
            wx.authorize({
              scope: that.data.scope,
              success() {
                console.log('授权成功')
                that.triggerEvent("ButtonClick", {
                  isSure: true
                });
              },
              fail: function (res) {
                console.log('授权失败')
                console.log(res)
                // 弹出一个提示框或者 显示一个授权按钮
                that.setData({
                  showModal: true
                })
              }
            })
        }
      })
    },
    /**
     * 弹出框蒙层截断touchmove事件
     */
    preventTouchMove: function() {},
    /**
     * 隐藏模态对话框
     */
    hideModal: function() {
      this.setData({
        showModal: false
      });
    },
    /**
     * 对话框取消按钮点击事件
     */
    onCancel: function() {
      this.hideModal();
      this.triggerEvent("ButtonClick", {
        isSure: false
      });
    },
    /**
     * 对话框确认按钮点击事件
     */
    onConfirm: function() {
      this.hideModal();
      this.triggerEvent("ButtonClick", {
        isSure: true
      });
    },

    /**
     * 只有这个方法才能获取用户信息  单独为微信登录写的一个按钮方法
     */
    bindgetuserinfo: function(e) {
      console.log('获取用户信息')
      this.hideModal();
      var that = this;
      if (e.detail.userInfo) {
        // 保存 登录信息，方便下次不需要在用微信登录
        wx.setStorage({
          key: 'wxUserLoginInfo',
          data: e.detail.userInfo,
        })
        this.triggerEvent("ButtonClick", e.detail.userInfo);
      } else {
        wx.showToast({
          title: '用户信息获取失败',
        })
      }
    }
  }
})